/**
 * 2010(c) Copyright Oceansoft Information System Co.,LTD. All rights reserved.
 * <p>
 * Compile: JDK 1.6+
 * <p>
 * 版权所有(C)：江苏欧索软件有限公司
 * <p>
 * 公司名称：江苏欧索软件有限公司
 * <p>
 * 公司地址：中国苏州科技城青山路1号
 * <p>
 * 网址: http://www.oceansoft.com.cn
 * <p>
 * 作者: 090922(陈伟)
 * <p>
 * 文件名: com.oceansoft.mobile.econsole.modules.member.persistence.IAppUserMapper.java
 * <p>
 * 类产生时间: 2014-5-8 下午 15:46
 * <p>
 * 负责人: 090922(陈伟)
 * <p>
 * Email:javacspring@gmail.com
 * <p>
 * 所在组 : 掌上公安应用平台
 * <p>
 * 所在部门: 开发部--手持技术部
 * <p>
 * <p>
 */
package com.oceansoft.mobile.econsole.modules.api.persistence;

import com.oceansoft.mobile.econsole.modules.api.entity.Monitor;
import com.oceansoft.mobile.econsole.modules.api.entity.Road;
import com.oceansoft.mobile.econsole.modules.base.entity.Query;
import com.oceansoft.mobile.econsole.modules.member.entity.Line;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 监控点道路信息
 *
 * @author: xujin
 * @time: 2014-9-11 下午 14:20
 */
@Repository
public interface IRoadMapper {
   /* *//**
     * 保存监控点道路信息
  *//*
    int save(Road road);*/

    /**
     * 根据监控点查询道路信息
     */
    Road findByEquipmentId(String equipmentId);

    /**
     * 加载全部监控点信息
     *
     * @return List<Monitor>
     */
    List<Monitor> loadMonitors();

    List<Road> findRoadListByPage(Query query);

    /**
     * 根据路口名称查询监控点列表
     *
     * @param address 监控点所在路口名称
     * @return List<Monitor>
     */
    List<Monitor> findMonitorByAddress(@Param("address") String address);

    /**
     * 加载指定用户自定义线路全部监控点
     *
     * @param userId 用户ID
     * @return List<Monitor>
     */
    List<Monitor> loadCustomLineMonitors(String lineId);

    /**
     * 加载用户自定义线路信息
     *
     * @param userId 用户ID
     * @return List<Line>
     */
    List<Line> loadCustomerLines(int userId);

 /**
  * 新增自定义线路信息
  *
  * @param line 新增线路信息
  * @return PK
  */
 int saveLine(Line line);

 /**
  * 删除自定义线路信息
  *
  * @param lindId 线路信息
  * @return int 受影响行数
  */
 int removeLine(@Param("lindId") String lindId);

 /**
  * 删除监控点
  *
  * @param monitorId 关系表PK
  * @return int 受影响行数
  */
 int removeMonitor(@Param("monitorId") int monitorId);

 /**
  * 保存监控点信息
  *
  * @param monitor 监控点信息
  */
 void saveMonitor(Monitor monitor);

 /**
  * 加载指定线路指定监控点数量
  *
  * @param lineId 线路ID
  * @param devId  设备ID
  * @return int
  */
 int getMonitorCount(String lineId, String devId);
}
